package com.sky.context;

/**
 * 基于ThreadLocal存储当前登录用户ID
 */
public class BaseContext {
    // 关键：使用static ThreadLocal（每个线程私有）
    private static final ThreadLocal<Long> THREAD_LOCAL = new ThreadLocal<>();

    // 设置当前线程的用户ID
    public static void setCurrentId(Long id) {
        THREAD_LOCAL.set(id);
    }

    // 获取当前线程的用户ID
    public static Long getCurrentId() {
        return THREAD_LOCAL.get();
    }

    // 移除当前线程的用户ID（避免线程池复用导致的脏数据）
    public static void removeCurrentId() {
        THREAD_LOCAL.remove();
    }
}